﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Chada.Infrastructure.Utility
{
    public class ByteConverter
    {
        /// <summary>
        /// 将一个由两个字符组成（或者少于2位）的十六进制字符串转换为一个字节
        /// </summary>
        /// <param name="hex">由两个字符组成的十六进制字符串，格式如：0A（不含0x）</param>
        public static byte HexConvertToByte(string hex)
        {
            return byte.Parse(hex, System.Globalization.NumberStyles.AllowHexSpecifier);
        }

        /// <summary>
        /// 将一个由四个字符（或者少于4位）组成的十六进制字符串转换为一个字节
        /// </summary>
        /// <param name="hex">由两个字符组成的十六进制字符串，格式如：ABCD（不含0x）</param>
        public static UInt32 HexConvertToUInt32(string hex)
        {
            return UInt32.Parse(hex, System.Globalization.NumberStyles.AllowHexSpecifier);
        }

        /// <summary>
        /// 比较两个字节数组内容是否相等，如果都是空数组也应该视为相等。
        /// </summary>
        public static bool Equal(byte[] a, byte[] b)
        {
            if (a.Length != b.Length) { return false; }
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] != b[i])
                    return false;
            }
            return true;
        }
    }
}
